import axios from '../utils/axios'

export default {
  query ({ cb, ecb, url, params }) {
    axios({
      url,
      params
    })
      .then(result => {
        cb && cb(result)
      })
      .catch(error => {
        ecb && ecb(error)
      })
  },
  find ({ cb, ecb, module, id, params }) {
    axios({
      url: `/api${module ? '/' + module : ''}${id ? '/' + id : ''}`,
      params
    })
      .then(result => {
        cb && cb(result)
      })
      .catch(error => {
        ecb && ecb(error)
      })
  },
  create ({ cb, ecb, module, formData }) {
    axios({
      method: 'POST',
      url: `/api${module ? '/' + module : ''}`,
      data: formData
    })
      .then(result => {
        cb && cb(result)
      })
      .catch(error => {
        ecb && ecb(error)
      })
  },
  update ({ cb, ecb, self, formData }) {
    axios({
      method: 'PATCH',
      url: self,
      data: formData
    })
      .then(result => {
        cb && cb(result)
      })
      .catch(error => {
        ecb && ecb(error)
      })
  },
  remove ({ cb, ecb, self }) {
    axios({
      method: 'DELETE',
      url: self
    })
      .then(result => {
        cb && cb(result)
      })
      .catch(error => {
        ecb && ecb(error)
      })
  },
  delete ({ cb, ecb, module, idList }) {
    axios({
      method: 'POST',
      url: `/api${module ? '/' + module : ''}/search/deleteInIdList`,
      data: {
        idList
      }
    })
      .then(result => {
        cb && cb(result)
      })
      .catch(error => {
        ecb && ecb(error)
      })
  },
  put ({ cb, ecb, url, data }) {
    axios({
      method: 'PUT',
      url,
      headers: {
        'Content-Type': 'text/uri-list'
      },
      data
    })
      .then(result => {
        cb && cb(result)
      })
      .catch(error => {
        ecb && ecb(error)
      })
  },
  login ({ cb, ecb, data }) {
    axios({
      method: 'POST',
      url: '/login',
      data
    })
      .then(result => {
        cb && cb(result)
      })
      .catch(error => {
        ecb && ecb(error)
      })
  }
}
